﻿using System.Collections.Generic;

namespace CKSE.Interfaces
{
    public interface IScriptManager
    {
        IGame Game { get; }
        object SyncRoot { get; }
        Dictionary<string, IScript> Items { get; }
        void Create(string scriptName, string content);
        void Create(IScript script, string content);
        bool Exists(string scriptName);
        bool Exists(IScript script);
        void Backup(string scriptName);
        void Backup(IScript script);
        void Delete(string scriptName);
        void Delete(IScript script);
        void Rename(string scriptName, string newName);
        void Rename(IScript script, string newName);
        void Restore(string scriptName);
        void Restore(IScript script);
        void Clean(string scriptName);
        void Clean(IScript script);
        void Load(string scriptName);
        void LoadAsync(string scriptName);
        void LoadAll();
        void LoadAllAsync();
    }
}
